package com.jiaozi.system.service;

import com.jiaozi.base.utils.bean.R;
import com.jiaozi.system.entity.SysMenu;
import com.jiaozi.system.pojo.param.sys.menu.MenuSaveUpdateParam;
import com.jiaozi.system.pojo.vo.sys.menu.MenuInfoVO;
import com.github.yulichang.base.MPJBaseService;
import com.jiaozi.system.pojo.vo.sys.menu.MenuPageVO;

/**
 * 系统-菜单(SysMenu)表服务接口
 *
 * @author jiaozi
 * @since 2024-08-15 14:02:36
 */
public interface SysMenuService extends MPJBaseService<SysMenu> {
    /**
     * 查询本菜单以及下菜单
     */
    R<MenuPageVO> menuListVOR();

    /**
     * 新增菜单信息
     * @param menuSaveUpdateParam
     * @return
     */
    R menuSave(MenuSaveUpdateParam menuSaveUpdateParam);

    /**
     * 获取菜单信息
     * @param menuId
     * @return
     */
    R<MenuInfoVO> menuInfo(String menuId);


    /**
     * 修改菜单信息
     * @param menuId
     * @param menuSaveUpdateParam
     * @return
     */
    R menuUpdate(String menuId,MenuSaveUpdateParam menuSaveUpdateParam);


    /**
     * 删除菜单信息
     * @param menuId
     * @return
     */
    R menuDelete(String menuId);

    /**
     * 变更菜单状态
     * @param menuId
     * @return
     */
    R updateMenuState(String menuId);

}

